/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Entidades;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author luksCastro
 */
@Entity
@Table(name = "equipo")
@NamedQueries({
    @NamedQuery(name = "Equipo.findAll", query = "SELECT e FROM Equipo e")})
public class Equipo implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idEquipo")
    private Integer idEquipo;
    @Column(name = "imei")
    private String imei;
    @Column(name = "fechaUltimaEntrega")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaUltimaEntrega;
    @Column(name = "fechaUltimaRetirado")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaUltimaRetirado;
    @Column(name = "estadoReparacion")
    private String estadoReparacion;
    @Column(name = "estadoGarantia")
    private String estadoGarantia;
    @Column(name = "estadoPago")
    private String estadoPago;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "presupEstimado")
    private Float presupEstimado;
    @Column(name = "presupFinal")
    private Float presupFinal;
    @OneToMany(mappedBy = "idEquipo")
    private List<Equipofalla> equipofallaList;
    @JoinColumn(name = "ordenreparacion_idOrdenRep", referencedColumnName = "idOrdenRep")
    @ManyToOne
    private Ordenreparacion ordenreparacionidOrdenRep;
    @JoinColumn(name = "clienteMayorista_idClienteMay", referencedColumnName = "idClienteMay")
    @ManyToOne(optional = false)
    private Clientemayorista clienteMayoristaidClienteMay;
    @JoinColumn(name = "modelo_idModelo", referencedColumnName = "idModelo")
    @ManyToOne
    private Modelo modeloidModelo;
    @JoinColumn(name = "gamaequipo_idGama", referencedColumnName = "idGama")
    @ManyToOne
    private Gamaequipo gamaequipoidGama;
    @OneToMany(mappedBy = "equipoidEquipo")
    private List<Empleadoequipo> empleadoequipoList;

    public Equipo() {
    }

    public Equipo(Integer idEquipo) {
        this.idEquipo = idEquipo;
    }

    public Integer getIdEquipo() {
        return idEquipo;
    }

    public void setIdEquipo(Integer idEquipo) {
        this.idEquipo = idEquipo;
    }

    public String getImei() {
        return imei;
    }

    public void setImei(String imei) {
        this.imei = imei;
    }

    public Date getFechaUltimaEntrega() {
        return fechaUltimaEntrega;
    }

    public void setFechaUltimaEntrega(Date fechaUltimaEntrega) {
        this.fechaUltimaEntrega = fechaUltimaEntrega;
    }

    public Date getFechaUltimaRetirado() {
        return fechaUltimaRetirado;
    }

    public void setFechaUltimaRetirado(Date fechaUltimaRetirado) {
        this.fechaUltimaRetirado = fechaUltimaRetirado;
    }

    public String getEstadoReparacion() {
        return estadoReparacion;
    }

    public void setEstadoReparacion(String estadoReparacion) {
        this.estadoReparacion = estadoReparacion;
    }

    public String getEstadoGarantia() {
        return estadoGarantia;
    }

    public void setEstadoGarantia(String estadoGarantia) {
        this.estadoGarantia = estadoGarantia;
    }

    public String getEstadoPago() {
        return estadoPago;
    }

    public void setEstadoPago(String estadoPago) {
        this.estadoPago = estadoPago;
    }

    public Float getPresupEstimado() {
        return presupEstimado;
    }

    public void setPresupEstimado(Float presupEstimado) {
        this.presupEstimado = presupEstimado;
    }

    public Float getPresupFinal() {
        return presupFinal;
    }

    public void setPresupFinal(Float presupFinal) {
        this.presupFinal = presupFinal;
    }

    public List<Equipofalla> getEquipofallaList() {
        return equipofallaList;
    }

    public void setEquipofallaList(List<Equipofalla> equipofallaList) {
        this.equipofallaList = equipofallaList;
    }

    public Ordenreparacion getOrdenreparacionidOrdenRep() {
        return ordenreparacionidOrdenRep;
    }

    public void setOrdenreparacionidOrdenRep(Ordenreparacion ordenreparacionidOrdenRep) {
        this.ordenreparacionidOrdenRep = ordenreparacionidOrdenRep;
    }

    public Clientemayorista getClienteMayoristaidClienteMay() {
        return clienteMayoristaidClienteMay;
    }

    public void setClienteMayoristaidClienteMay(Clientemayorista clienteMayoristaidClienteMay) {
        this.clienteMayoristaidClienteMay = clienteMayoristaidClienteMay;
    }

    public Modelo getModeloidModelo() {
        return modeloidModelo;
    }

    public void setModeloidModelo(Modelo modeloidModelo) {
        this.modeloidModelo = modeloidModelo;
    }

    public Gamaequipo getGamaequipoidGama() {
        return gamaequipoidGama;
    }

    public void setGamaequipoidGama(Gamaequipo gamaequipoidGama) {
        this.gamaequipoidGama = gamaequipoidGama;
    }

    public List<Empleadoequipo> getEmpleadoequipoList() {
        return empleadoequipoList;
    }

    public void setEmpleadoequipoList(List<Empleadoequipo> empleadoequipoList) {
        this.empleadoequipoList = empleadoequipoList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idEquipo != null ? idEquipo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Equipo)) {
            return false;
        }
        Equipo other = (Equipo) object;
        if ((this.idEquipo == null && other.idEquipo != null) || (this.idEquipo != null && !this.idEquipo.equals(other.idEquipo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Entidades.Equipo[ idEquipo=" + idEquipo + " ]";
    }
    
}
